//
// Created by Administrator on 2024/6/13.
//

#ifndef COORDTRANS_COORDINATESYSTEMNODE_H
#define COORDTRANS_COORDINATESYSTEMNODE_H

#include "EllipsoidModel.h"
#include <memory>

namespace sgt {
    /// \brief 坐标系转换接口，默认使用WGS84球
    class CoordinateSystemNode {
    public:
        CoordinateSystemNode() {
            m_ellipsoidModel = std::make_shared<sgt::EllipsoidModel>(); //默认构建一个WGS84球
        }

        ENU






        /** Set EllipsoidModel to describe the model used to map lat, long and height into geocentric XYZ and back. */
        void setEllipsoidModel(std::shared_ptr<sgt::EllipsoidModel> ellipsode) { m_ellipsoidModel = ellipsode; }

        /** Get the EllipsoidModel.*/
        std::shared_ptr<sgt::EllipsoidModel> getEllipsoidModel() { return m_ellipsoidModel; }

        /** Get the const EllipsoidModel.*/
        const std::shared_ptr<sgt::EllipsoidModel> getEllipsoidModel() const { return m_ellipsoidModel; }


    private:
        std::shared_ptr<sgt::EllipsoidModel> m_ellipsoidModel;
    };
}//end sgt

#endif //COORDTRANS_COORDINATESYSTEMNODE_H
